\chapter*{前言}\label{sec-preface}
\markboth{前言}{前言}

正则表达式是一种有效的字符串匹配策略，它在程序设计中有着重要的作用。特别是
在数据有效性校验、字符串提取等程序开发工作中经常会用到正则表达式。

本书基于开源Hyperscan正则表达式引擎，说明了在ANSI C环境下实现正则表达式编程
的基本方法。Hyperscan是Intel公司开发的正则表达式引擎。Hyperscan是一款简单、
快速、安全的正则表达式引擎。它支持单模、多模正则表达式，也支持块模式、流模式
和向量模式的扫描匹配。本书在简单说明Hyperscan在ANSI C中的使用方式后，通过
整数范围有效性判断、电话号码有效性判断、整数重复数字判断、找最亲近同学、
比压牌和牌型分类等6个典型应用示例演示使用Hyperscan正则表达式引擎解决实际问题
的方法。

本书并未系统讲解\cl 语法，也未对所有Hyperscan库函数及其它内容进行全面说明，
仅针对Hypersacn正则表达式引擎的基本使用方法进行了简单说明。旨在让已经具备%
\cl 基础的读者能够使用正则表达式处理实际问题。同时也可以为承担\cl{}程序设
计教学的教师提供必要的参考。

本书的撰写基于笔者编写的《说C解C》中提出的内存观、代码观和调试观的程序设计
\enquote{三观}的理念，并参阅了大量在线资料和共享文档。本书采用了
ElegantBook \LaTeX{}模板实现排版。在此一并表示原作者表示衷心的感谢！

鉴于笔者的学识水平有限，书中谬误之处在所难免，敬请读者不吝指正。

\vfill
\begin{flushright}
  \newlength{\lablen}
  \setlength{\lablen}{\widthof{\today}}
  \makebox[\the\lablen][c]{耿楠}\\
  \makebox[\the\lablen][c]{\today}\\
  \makebox[\the\lablen][c]{陕西杨凌}
\end{flushright}
\vfill
